Routing packets over a network may require a significant amount of resources from a network device. For example, the network device may have to search a routing table for routing information. Depending on the size of the routing table, the search may consume a significant amount of time. Since a network device typically routes a relatively large number of packets, even minor variations in search time per packet may dramatically affect overall performance of the network device. Further, a host of new routing services are currently being developed that may require even more complex routing functionality, such as dynamically updating the routing table, thereby requiring more sophisticated hardware and software for the network device. This may in turn increase the overall cost of the network device.